signature MACHINE_MAIN_STRUCTS =
sig
  structure Machine : MACHINE
  structure Cfg : CFG
  sharing Cfg.Atoms = Machine.Atoms
  sharing Cfg.Types = Machine.Types
end

signature MACHINE_MAIN =
sig
  include MACHINE_MAIN_STRUCTS
  
  val trans : Cfg.Program.t -> Machine.Program.t
end
